package com.taotao.web.controller;

import java.io.IOException;

import org.apache.http.client.ClientProtocolException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.taotao.web.bean.ItemDesc;
import com.taotao.web.bean.ItemVO;
import com.taotao.web.service.ItemService;

/**
 * @Description:
 * 功能分析：
  	商品详情页入口是前台系统，访问地址如下：http://www.taotao.com/item/{itemId}.html
	访问后需要跳转到前台系统的item.jsp页面
  实现思路：前台系统编写商品控制器(ItemController)，实现页面的跳转，跳转到item.jsp时，要求携带相关的商品信息数据，
	商品对象的CRUD统一来自后台系统的维护，所以前台系统获取商品数据的方式只能是调用后台系统接口。
	商品相关的数据来自后台系统接口，所以要求后台系统提供相应的查询接口，供前台系统调用

 * 
 * @author:     mingxu
 */
@RequestMapping(value = "item")
@Controller
public class ItemController {

	@Autowired
	private ItemService itemService;

	/**
	 * 商品详情页
	 * @Description:根据商品id查询商品信息
	 * 		请求地址：http://www.taotao.com/item/{itemId}.html
	 * 		请求参数：itemId
	 * 		返回值：商品item以及商品详情ItemDesc,并跳转到item.jsp
	 * @return
	 * @author mingxu
	 * @throws IOException 
	 * @throws ClientProtocolException 
	 */
	@RequestMapping(value = "{itemId}", method = RequestMethod.GET) //{}占位符传参，可以用来接收参数，@pathVariable可以接收到占位符中的参数值
	public ModelAndView queryItemById(@PathVariable("itemId") Long itemId) throws ClientProtocolException, IOException {
		//创建ModelAndView，并设置视图名称
		ModelAndView mv = new ModelAndView("item");

		//调用业务层获取商品以及商品详情数据
		ItemVO item = itemService.queryItemById(itemId);
		mv.addObject("item", item);
		ItemDesc itemDesc = itemService.queryItemDescById(itemId);
		mv.addObject("itemDesc", itemDesc);
		return mv;
	}

}
